home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 3 / CD ACTUAL 3.iso / linux / system / bsvc-1.000 / bsvc-1 / bsvc-1.0.4 / src / SimHector / cpu / Hector.hxx < prev    next >
Encoding:
Text File  |  1995-07-26  |  1.8 KB  |  60 lines

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Hector.hxx - This is the Hector 1600 CPU class
  4. //
  5. // By: Bradford W. Mott
  6. // December 2,1993
  7. //
  8. ///////////////////////////////////////////////////////////////////////////////
  9.  
  10. #ifndef HECTOR_HXX
  11. #define HECTOR_HXX
  12.  
  13. #include "BasicCPU.hxx"
  14. #include "BasicDevice.hxx"
  15.  
  16. #include "ControlUnit.hxx"
  17.  
  18. ///////////////////////////////////////////////////////////////////////////////
  19. // The Hector 1600 class
  20. ///////////////////////////////////////////////////////////////////////////////
  21. class Hector : public BasicCPU {
  22.   private:
  23.     DataPath*    data_path;        // Hector's data path
  24.     ControlUnit* control_unit;     // Hector's control unit
  25.  
  26.   public:
  27.     Hector(AddressSpace*);         // Constructor
  28.     virtual ~Hector();             // Destructor
  29.  
  30.     // Execute a single instruction: On success it returns NULL, on
  31.     //     failure it returns a pointer to the reason. 
  32.     const char* ExecuteInstruction(String& trace_record, int trace_flag);
  33.  
  34.     // Handle an interrupt request from a device
  35.     void InterruptRequest(BasicDevice* device, int level);
  36.  
  37.     // Preform a system reset
  38.     void Reset();
  39.  
  40.     // Return the name of the program counter register
  41.     char* const NameOfProgramCounter();
  42.  
  43.     // Return the value of the program counter register
  44.     unsigned long ValueOfProgramCounter();
  45.  
  46.     // Set the named register to the given value
  47.     void SetRegister(String name, String hex_value);
  48.  
  49.     // Clear the statistics
  50.     void ClearStatistics();
  51.  
  52.     // Build the register list for the RegisterInformationList object
  53.     void BuildRegisterInformationList(RegisterInformationList*);
  54.  
  55.     // Build the statistics list for the StatisticalInformationList object
  56.     void BuildStatisticalInformationList(StatisticalInformationList*);
  57. };
  58. #endif
  59.  
  60.